package main

import (
	"fmt"
)

func fmap1(a map[string]int) {
	a["a"] = 1 //字典引用的地址拷贝，a是新的地址但指向的数据是原来的，所以能修改a中字典数据
}
func fmap2(a map[string]int) {
	a = map[string]int{"c": 30, "d": 40} //字典引用的地址拷贝，所以不能修改函数外的字典
}
func fmap3(a *map[string]int) {
	*a = map[string]int{"c": 30, "d": 40} //这里是引用所以能修改函数外的字典
}
func main() {
	var a = map[string]int{"a": 10, "b": 20}
	fmap1(a)
	fmt.Println(a) //map[a:1 b:20]
	fmap2(a)
	fmt.Println(a) //map[a:1 b:20]
	fmap3(&a)
	fmt.Println(a) //map[c:30 d:40]
}
